Data-flow and Control-flow Analysis of AspectJ Software for Program Slicing

نویسندگان

  • Guoqing Xu
  • Atanas Rountev
چکیده

We propose an approach for program slicing of AspectJ software, based on a novel data-flow and control-flow program representation. The representation is built at the source-code level and, unlike previous work, captures the semantic intricacies of various pointcut designators, multiple advices per joint point, dynamic advices, exceptions, and general flow of data to, from, and between advices. We also present algorithms for dependence analysis, system dependence graph construction, and slicing of AspectJ programs. These algorithms are built on top of the proposed representation, and take into account the complex flow of data and control due to aspect-oriented features. We present an experimental study on 37 programs, using our AJANA analysis framework which is based on the abc AspectJ compiler. The results show that the representation can be built efficiently, that it is superior to an approach based on the woven bytecode, and that slicing is both faster and more precise. These findings strongly indicate that the proposed general approach is a promising solution for slicing and similar analyses of AspectJ software, in various tools for program comprehension, change impact analysis, program integration, software testing, and software debugging.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

AJcFgraph - AspectJ Control Flow Graph Builder for Aspect-Oriented Software

The ever-growing usage of aspect-oriented development methodology in the field of software engineering requires tool support for both research environments and industry. So far, tool support for many activities in aspect-oriented software development has been proposed, to automate and facilitate their development. For instance, the AJaTS provides a transformation system to support aspect-orient...

متن کامل

Analysis and Testing of Programs with Exception Handling Constructs

Analysis techniques, such as control flow, data flow, and control dependence, are used for a variety of software-engineering tasks, including structural and regression testing, dynamic execution profiling, static and dynamic slicing, and program understanding. To be applicable to programs in languages, such as Java and C++, these analysis techniques must account for the effects of exception occ...

متن کامل

Static inter-BPEL program slicing for web services

Analysis and maintenance of BPEL programs play a vital role in assuring the quality of Web service software. In the paper, the concept of inter-service control flow graph (ISCFG) is proposed to represent the interaction behaviours between service units. Meanwhile, the traditional data flow analysis is extended to handle combinatorial structure of variables in BPEL program. Then, a method for co...

متن کامل

Term Dependence Graphs 1

Program slicing is a method for decomposing programs by analyzing their data and control flow. It has many applications in the field of software engineering (like program debugging, testing, code reuse, maintenance, etc). The so called program dependence graph—a data structure that stores control and data dependences between the statements of imperative programs—is a key ingredient of many slic...

متن کامل

Static Interprocedural Slicing of Shared Memory Parallel Programs

Software tools for program debugging, software testing, software maintenance, and program understanding have all effectively utilized static program slicing techniques. In this paper, we present an approach to extend this capability to explicitly parallel shared memory programs written using the OpenMP standard. In particular, interprocedural static program slicing of OpenMP programs is enabled...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007